Parallel-I/O-Adapter mit dem PPI8255

Helmut Berhardt

TRS-80, GENIE und Komtek haben weder für IEC-Bus, RS232C noch sonst irgendwelche
standartisierten Schnittstellen Anschlüsse vorbereitet. Das einzige (außer Stecker
für Drucker und Floppy), was man vorfindet, ist der herausgeführte Systembus.
Leider gibt es keinerlei Interfaces, die auf den Systembus aufgesteckt werden und
dann Standard-Schnittstellen bereitstellen. Es ist auch nicht zu erwarten, daß
irgendein Hersteller für unsere wenig bedeutenden Geräte sowas je anbieten wird.
Wir müssen uns da schon selber helfen.

Andererseits ist der Systembus für Bastler viel inreressanter als ein IEC-Bus
oder User-Port. Es stehen dabei alle Möglichkeiten offen, irgendwelche
Schnittstellen selbst zu bauen und über den Systembusstecker anzuschließen. Man
ist nicht auf die vom Hersteller vorgegebenen Möglichkeiten beschränkt.

Eine einfache Parallel-I/O-Schnittstelle mit 24 Leitungen läßt sich mit dem 8255
aufbauen. Neben dem 8255 werden noch 2 weitere ICs zur Portdecodierung benötigt.
Die in Abb.1 vorgeschlagene Schaltung benutzt die Portadressen 98H-9BH. Sie ist
so einfach, daß sich die Herstellung eines Layouts nicht lohnt. Die Schaltung
läßt sich auf einem 5 cm * 8 cm Stück Lochrasterplatine aufbauen.

Der Anschluß an den Systembus des Computers ist in Tabelle 1 wiedergegeben. Für
den TRS-80 ergeben sich dabei gewisse Schwierigkeiten. Die Versorgungsspannung
von +5V liegt nicht auf dem Systembus-Stecker. Sie muß an geeigneter Stelle auf
dem CPU-Board entnommen werden. Außerdem ist das Signal IORQ* nicht vorhanden.
Anstelle von IORQ* muss dann auch an Pin 11 des 74LS02 das Signal A2 gelegt werden. Anstelle der nicht verfügbaren Signale RD* und WR* werden die Signale
IN* und OUT* an die Pins 5 und 36 des 8255 gelegt.

Der 8255 hat gegenüber dem für den Z80 üblichen PIO-Baustein den Nachteil, daß
er keinen IM2-Interrupt liefern kann und daß die Leitungen eines Ports nicht
unabhängig voneinander als Input oder Output definiert werden können. Dafür
stehen aber in der einfachsten Betriebsart (Mode 0) drei 8-Bit-Ports zur
Verfügung. Beim Port C lassen sich zusätzlich noch oberes und unteres Nibble
unabhängig voneinander als Input oder Output festlegen.

Ein echtes Handshaking ist mit einzelnen Leitungen des Port C für die Ports A
und B ebenfalls möglich, wenn die Betriebsarten Mode 1 oder Mode 2 programmiert
werden. Dann muß noch ein zusätzliches IC 74LS05 eingesetzt weden, das die
Interrupt-Ausgänge des 8255, PC0 und PC3 invertiert und auf Open-Collector
Ausgänge bringt. Außerdem kann darüber auch ein externes, low aktives
Strobe-Signal an den INT-Eingangder CPU geführt werden, wenn das Handshaking
nicht durch den 8255 erledigt werden soll.

Tabelle 1: Anschuß an den Systembus

	Pin des Systembus-Steckers
Signal	GENIE	Komtek	TRS-80
-------------------------------------
D0	15	46	30
D1	14	41	22
D2	12	40	32
D3	16	39	26
D4	20	42	18
D5	11	37	28
D6	18	44	24
D7	17	43	20
-------------------------------------
A0	10	34	25
A1	 7	32	27
A2	 9	30	40
A3	 8	28	34
A4	 6	26	31
A5	 5	24	35
A6	 4	22	38
A7	 3	20	36
-------------------------------------
IORQ*	38	35	40 #2 (A2)
RD*	41	38	19 #2 (IN*)
WR*	40	36	12 #2 (OUT*)
RESET*	46 #1	33 #1	 2 (SYSRES*)
INT*	31	10	21
-------------------------------------
+5V	19	17, 18	39 #3
GND	1,2,	1,2,	8,29,37
	49,50	49,50
-------------------------------------

Anmerkungen:

#1 anstelle von RESET* sollte ein durch AND-Verknüpfung
   aus RESET* und NMI* gebildetes SYSRES* benutzt werden
#2 anstelle der nicht vorhandenen Signale IORQ*, RD* und
   WR* müssen A2, IN* und OUT* benutzt werden
#3 Die Versorgungsspannung ist nur am Expansion-Interface
   und nicht am Grundgerät zu entnehmen; bei Anschluß an
   das Grundgerät kann sie an geeigneter Stelle auf dem
   CPU-Board abgenommen werden oder auch vom angeschlossenen
   Peripheriegerät geliefert werden, zu dem auch Masse-
   Verbindung bestehen muß

Pinbelegung des 40poligen I/O-Steckers

Signal	Pin	Pin	Signal
---------------------------------
PA4	39	40	PA3
PA5	37	38	PA2
PA6	35	36	PA1
PA7	33	34	PA0
GND	31	32	GND
 -	29	30	 -
 -	27	28	 -
 -	25	26	 -
 -	23	24	 -
 -	21	22	ext.STROBE*
 -	19	20
PC7	17	18	PC0
PC6	15	16	PC1
PC5	13	14	PC2
PC4	11	12	PC3
+5V	 9	10	+5V
PB7	 7	 8	 -
PB6	 5	 6	PB1
PB5	 3	 4	PB2
PB4	 1	 2	PB3
